#include "MF.hpp"

class MFD {
public:
  MFD() : MF_list(nullptr), current_user(nullptr), opened(nullptr) {}

  bool login(std::string user_name);
  void create(std::string file_name, short int protect_code, size_t length);
  void deleteFile(std::string file_name);
  void open(std::string file_name, short int mode);
  void close(std::string file_name);
  void read(std::string file_name);
  void write(std::string file_name, size_t length);
  void logout();
  void showUserFiles();
  void commandLoop();
  void userLoop();
  void createUser(std::string user_name);

private:
  MF *MF_list;
  MF *current_user;
  UF *opened;
  short int open_mode;
  // void operationLoop();
};